package com.bfly.mall.order.enums;

/**
 * 订单状态
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/4/17 21:06
 */
public enum OrderStatusEnum {
    // 退款说明：用户在支付成功后且订单状态是打开的前提下可以做申请退款的操作，完成申请退款后交易结束关闭订单
    // 退款退货说明：用户需要在收到产品后确认“已收货”动作，然后申请售后退款退货操作，完成退款退货操作结束关闭订单.

    // 打开状态下的订单可以做订单取消，退款操作退款完成后关闭订单
    OPEN(100, "订单打开"),

    // 订单取消后不可做任何操作
    CANCEL(101, "订单取消"),

    // 订单关闭通常是指异常订单包含用户的退款，退货申请操作,关闭状态的订单表示订单
    // 的异常结束后不可做任何操作.
    CLOSE(102, "订单关闭"),

    // 正常流程完成的订单，用户没有做退款退货的申请操作.
    COMPLETE(103, "订单完成");

    private int id;
    private String name;

    OrderStatusEnum(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public static OrderStatusEnum getStatus(int id) {
        for (OrderStatusEnum status : OrderStatusEnum.values()) {
            if (id == status.getId()) {
                return status;
            }
        }
        return null;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
